import request from '@/http/request';
import { IListData, ILogin, IMenu, IUser } from '@/types/api';

export default {
    /**
     * 用户登录
     *
     * @param data 登录参数
     * @returns 登录结果
     */
    login(data: ILogin.Params) {
        return request.post<string>('/users/login', data, { showError: false });
    },

    /**
     * 获取用户信息
     * @returns 用户信息
     */
    getUserInfo() {
        return request.get<IUser.UserItem>('/users/getUserInfo');
    },

    /**
     * 获取权限列表
     * @returns 返回菜单列表和按钮权限列表
     */
    getPermissionList() {
        return request.get<{ buttonList: string[]; menuList: IMenu.MenuItem[] }>('/users/getPermissionList');
    },

    /**
     * 分页获取用户列表
     * @param params
     * @returns 用户列表
     */
    getUsersList(params: IUser.Params) {
        return request.get<IListData<IUser.UserItem>>('/users/list', params);
    },

    /**
     * 获取所有用户列表
     * @param params
     * @returns 用户列表
     */
    getAllUserList() {
        return request.get<IUser.UserItem[]>('/users/all/list');
    },

    /**
     * 创建用户
     * @param data
     * @returns
     */
    createUser(data: IUser.CreateParams) {
        return request.post('/users/create', data);
    },

    /**
     * 编辑用户
     * @param data
     * @returns
     */
    editUser(data: IUser.EditParams) {
        return request.post('/users/edit', data);
    },

    /**
     * 删除和批量删除用户
     * @param data 用户id数组
     * @returns
     */
    delUser(data: { userIds: string[] }) {
        return request.post('/users/delete', data);
    }
};
